package com.wicket.okrapp.biz.service.dto.common;

import com.wicket.okrapp.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;

import lombok.Data;
import java.util.Objects;

/**
 * @desc TaskDataDto
 * @使用场景
 */
@Data
public class TaskDataDto extends BaseDto implements Serializable {

  /**
   * 任务ID
   */
  @ApiModelProperty("任务ID")
  private String taskId;

  /**
   * 冗余最新进度
   */
  @ApiModelProperty("冗余最新进度")
  private Double percentageProgress;
/**
     * 任务名称
     */
    @ApiModelProperty("任务名称")
    private String	 taskName;

    /**
     * 总时长
     */
    @ApiModelProperty("总时长")
    private Long	 totalLength;
/**
     * 前端状态时间
     */
    @ApiModelProperty("前端状态时间")
    private Long	 deflectionTime;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private Date	 createTime;
/**
     * 内容表主键ID 
     */
    @ApiModelProperty("内容表主键ID")
    private String	 entityId;

    /**
     * 父内容表主键ID 
     */
    @ApiModelProperty("父内容表主键ID")
    private String	 parentEntityId;
/**
     * 归属对象ID 
     */
    @ApiModelProperty("归属对象ID")
    private String	 coordObjectId;
/**
     * 内容冗余状态 EDITING:草稿 TOBESIGN:待签收 ONGOING:进行中 FAILED:已失败 OVERDUE:逾期任务 NOT_AT_THE:未开始 UNCOMPLETED:未完成 COMPLETED:已完成 UNREPORTED:待汇报 EVA:评价中 AUDIT:审核中 EXPIRED:已逾期 SUCCESS:已成功 ENDED:已结束 UNLIMITED:不限 TOBEFILL:待填报 TOBEEVA:待评价
     */
    @ApiModelProperty("内容冗余状态")
    private String	 stateCode;

    /**
     * 周期名称 
     */
    @ApiModelProperty("周期名称")
    private String	 cycleStandardName;

    /**
     * 归属内容ID 
     */
    @ApiModelProperty("归属内容ID")
    private String	 belongToContentId;

    /**
     * 虚拟组织下部门ID 
     */
    @ApiModelProperty("虚拟组织下部门ID")
    private String	 deptId;

    /**
     * 负责人就职记录ID 
     */
    @ApiModelProperty("负责人就职记录ID")
    private String	 personLiableInductionRecordId;

    /**
     * 主管就职记录ID 
     */
    @ApiModelProperty("主管就职记录ID")
    private String	 directorInductionRecordId;
/**
     * 部门简称 
     */
    @ApiModelProperty("部门简称")
    private String	 deptShortName;

    /**
     * 负责人头像 
     */
    @ApiModelProperty("负责人头像")
    private String	 personLiableUserFace;

    /**
     * 负责人姓名 
     */
    @ApiModelProperty("负责人姓名")
    private String	 personLiableIdCardName;

    /**
     * 负责人昵称 
     */
    @ApiModelProperty("负责人昵称")
    private String	 personLiableNickName;

    /**
     * 主管头像 
     */
    @ApiModelProperty("主管头像")
    private String	 directorUserFace;

    /**
     * 主管姓名 
     */
    @ApiModelProperty("主管姓名")
    private String	 directorIdCardName;

    /**
     * 主管昵称 
     */
    @ApiModelProperty("主管昵称")
    private String	 directorNickName;
/**
     * 任务编号 
     */
    @ApiModelProperty("任务编号")
    private String	 taskNumber;

    /**
     * 任务类型 ROUTINE_TASK:常规任务 PROJECT_TASK:项目任务 TEMPORARY_TASK:临时任务 PROBLEM_TASK:问题任务
     */
    @ApiModelProperty("任务类型")
    private String	 taskType;

    /**
     * 创建人就职记录ID 
     */
    @ApiModelProperty("创建人就职记录ID")
    private String	 createInductionId;
@Override
  public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
      if (!super.equals(o)) return false;
      TaskDataDto that = (TaskDataDto) o;
      return  taskId == that.taskId&&percentageProgress == that.percentageProgress&&taskName == that.taskName&&totalLength == that.totalLength&&deflectionTime == that.deflectionTime&&createTime == that.createTime&&entityId == that.entityId&&parentEntityId == that.parentEntityId&&coordObjectId == that.coordObjectId&&stateCode == that.stateCode&&cycleStandardName == that.cycleStandardName&&belongToContentId == that.belongToContentId&&deptId == that.deptId&&personLiableInductionRecordId == that.personLiableInductionRecordId&&directorInductionRecordId == that.directorInductionRecordId&&deptShortName == that.deptShortName&&personLiableUserFace == that.personLiableUserFace&&personLiableIdCardName == that.personLiableIdCardName&&personLiableNickName == that.personLiableNickName&&directorUserFace == that.directorUserFace&&directorIdCardName == that.directorIdCardName&&directorNickName == that.directorNickName&&taskNumber == that.taskNumber&&taskType == that.taskType&&createInductionId == that.createInductionId;
    }
@Override
  public int hashCode() {
      return Objects.hash(super.hashCode(), taskId,percentageProgress,taskName,totalLength,deflectionTime,createTime,entityId,parentEntityId,coordObjectId,stateCode,cycleStandardName,belongToContentId,deptId,personLiableInductionRecordId,directorInductionRecordId,deptShortName,personLiableUserFace,personLiableIdCardName,personLiableNickName,directorUserFace,directorIdCardName,directorNickName,taskNumber,taskType,createInductionId);
    }

}
